package com.ny.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

/**
 * 邮件服务类（用于发送密码重置验证码）
 */
@Service
public class EmailService {

    // 从配置文件读取发送者邮箱（即spring.mail.username）
    @Value("${spring.mail.username}")
    private String fromEmail;

    @Autowired
    private JavaMailSender javaMailSender;

    /**
     * 发送密码重置验证码邮件
     * @param toEmail 接收者邮箱
     * @param code 验证码
     * @param expireTime 验证码有效期（单位：秒）
     */
    public void sendResetCodeEmail(String toEmail, String code, int expireTime) {
        // 1. 构建邮件信息
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(fromEmail); // 发送者邮箱
        message.setTo(toEmail);     // 接收者邮箱
        message.setSubject("【密码重置】验证码通知"); // 邮件主题
        // 邮件内容（含验证码和有效期）
        String content = String.format(
                "您好！您正在申请密码重置，您的验证码为：%s\n" +
                        "验证码有效期为%d分钟，请在有效期内完成密码重置，请勿向他人泄露验证码。",
                code, expireTime / 60
        );
        message.setText(content);

        // 2. 发送邮件
        javaMailSender.send(message);
    }
}